package net.apps.core;

/**
 * Application manager.
 * This class is instatiated by new incoming connection and application,
 * and controls lifecycle of an {@link Appl} instance. 
 * 
 * @author Maxim Kizub
 *
 */
public interface ApplManager<A> extends Runnable {
	
	void instantiateAppl(Class<? extends A> appl_class);
	
	/** Wakeup for specific application */
	void requestWakeup(A appl);
	
	/** Run main application(s) loop */
	void run();

}
